home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload Trio 2
/
Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO
/
dir36
/
tsbat46.zip
/
D.BAT
< prev
next >
Wrap
DOS Batch File
|
1992-08-29
|
3KB
|
117 lines
echo off
echo.
echo ┌───────────────────────────────────────────────────┐
echo │ Directory with sort and generalized name matching │
echo │ By Prof. Timo Salmi, ts@uwasa.fi, Fri 28-Aug-1992 │
echo └───────────────────────────────────────────────────┘
echo.
rem If no parameters are given to the batch, then display help
if "%1"=="" goto _help
rem Check that a (ram)disk exists on r:
if not exist r:\nul goto _err1
rem Eliminate wildcards (they are implicit)
for %%f in (%1) do if "%%f"=="%1" goto _makeup
echo Wildcards are implicit and should not be used
goto _out
rem Make the searchstring uppercase
:_makeup
set _tmp=%path%
path %1
set _upcase=%path%
path %_tmp%
rem Make a temporary directory
dir *.* > r:\d.tmp
rem Read the switches
set _n=
set _e=
set _s=
set _r=
:_loop
shift
if "%1"=="" goto _sort_1
if "%1"=="/n" set _n=yes
if "%1"=="/N" set _n=yes
if "%1"=="/e" set _e=yes
if "%1"=="/E" set _e=yes
if "%1"=="/s" set _s=yes
if "%1"=="/S" set _s=yes
if "%1"=="/r" set _r=/r
if "%1"=="/R" set _r=/r
goto _loop
rem The sorting routines
:_sort_1
if "%_n%"=="yes" goto _sort_n
:_sort_2
if "%_e%"=="yes" goto _sort_e
:_sort_3
if "%_s%"=="yes" goto _sort_s
:_sort_4
goto _display
:_sort_n
sort %_r% < r:\d.tmp > r:\tmp$$$.$$$
copy r:\tmp$$$.$$$ r:\d.tmp > nul
del r:\tmp$$$.$$$
goto _sort_2
:_sort_e
sort %_r% /+10 < r:\d.tmp > r:\tmp$$$.$$$
copy r:\tmp$$$.$$$ r:\d.tmp > nul
del r:\tmp$$$.$$$
goto _sort_3
:_sort_s
sort %_r% /+14 < r:\d.tmp > r:\tmp$$$.$$$
copy r:\tmp$$$.$$$ r:\d.tmp > nul
del r:\tmp$$$.$$$
goto _sort_4
rem Find the entries containing the searchstring
:_display
find "%_upcase%" r:\d.tmp | more
goto _out
:_help
echo D is a DIR command enhancement. It uses a generalized searchstring which is
echo matched with the file name REGARDLESS of the location of the string within
echo the file name. Wildcards (* and ?) should not be used. They are implicit.
echo.
echo Usage: D SearchString [/n] [/e] [/s] [/r]
echo │ │ │ └─ Reverse the sort
echo │ │ └─ Sort by size
echo │ └─ Sort by extension
echo └─ Sort by name
echo.
echo Examples: D bat /s /r (all batch files sorted from biggest to smallest)
echo D - /n (see the entire sorted directory (- or . or :) )
echo D j (all file names having a J in them, unsorted)
echo D /r (error in logic, no sort key has been defined)
echo.
echo If you get an "Out of environment space" message, increase your environment
echo space by using shell configuration in config.sys apply the following MsDos
echo 3.30 example: shell=c:\bin\command.com /e:1024 /p
goto _out
:_err1
echo D.BAT assumes by default a (ram)disk in drive R. If you do not have
echo that drive is available, then you should substitute r:\d.bat throughout
echo the batch as relevant for your own configuration. (Using a ramdisk is
echo advisable, because potential read-only problems are avoided.)
:_out
if exist r:\d.tmp del r:\d.tmp
set _tmp=
set _upcase=
set _n=
set _e=
set _s=
set _r=
echo on